Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added option to disable middleware spans in Starlette #3052

Merged
merged 9 commits into from
Jun 27, 2024

Conversation

antonpirker
Copy link
Member

@antonpirker antonpirker commented May 7, 2024

When middleware_spans is set to False, no spans will be recorded for Starlette middleware. (analogue to how the DjangoIntegration works)

Docs update: getsentry/sentry-docs#10523


General Notes

Thank you for contributing to sentry-python!

Please add tests to validate your changes, and lint your code using tox -e linters.

Running the test suite on your PR might require maintainer approval. Some tests (AWS Lambda) additionally require a maintainer to add a special label to run and will fail if the label is not present.

For maintainers

Sensitive test suites require maintainer review to ensure that tests do not compromise our secrets. This review must be repeated after any code revisions.

Before running sensitive test suites, please carefully check the PR. Then, apply the Trigger: tests using secrets label. The label will be removed after any code changes to enforce our policy requiring maintainers to review all code revisions before running sensitive tests.

Comment on lines 651 to 658
idx = 0
for span in transaction_event["spans"]:
if span["op"] == "middleware.starlette":
assert span["description"] == expected[idx]
assert span["tags"]["starlette.middleware_name"] == expected[idx]
if span["op"].startswith("middleware.starlette"):
assert (
span["tags"]["starlette.middleware_name"]
== expected_middleware_spans[idx]
)
idx += 1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this idx stuff was already here, but maybe we can consider changing this for loop to use zip or enumerate instead, so we can get rid of it?

@antonpirker antonpirker self-assigned this Jun 4, 2024
@antonpirker antonpirker added this to the Starlette/FastAPI Update milestone Jun 7, 2024
@antonpirker antonpirker removed this from the Starlette/FastAPI Update milestone Jun 20, 2024
Copy link
Contributor

@sentrivana sentrivana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Daniel's suggestion makes sense to me too but already looks good as is.

@antonpirker antonpirker enabled auto-merge (squash) June 27, 2024 09:06
@antonpirker antonpirker merged commit c210ad6 into master Jun 27, 2024
121 checks passed
@antonpirker antonpirker deleted the antonpirker/starlette-middleware-spans-option branch June 27, 2024 09:24
arjennienhuis pushed a commit to arjennienhuis/sentry-python that referenced this pull request Sep 30, 2024
When middleware_spans is set to False, no spans will be recorded for Starlette middleware. (analogue to how the DjangoIntegration works)
---------

Co-authored-by: Daniel Szoke <7881302+szokeasaurusrex@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants